FIG. 1 illustrates a microcontroller 10 that is configured for controlling a three-phase, brushless DC (BLDC) motor 12. A BLDC motor has a rotor with permanent magnets and a stator with windings, and is electronically commuted by energizing the stator windings in a pattern that rotates around the stator. The pattern—referred to as a rotating voltage vector—energizes two phases a time and induces opposing magnetic poles with respect to the rotor magnets, thereby inducing rotation. In the illustrated example, a drive circuit 14 provides the actual driving signals to the A, B, and C phases of the BLDC 12 and comprises three half-bridge transistor circuits that include a total of six transistors: Q1, Q2, Q3, Q4, Q5 and Q6.
The microcontroller 10 is specially adapted for driving the BLDC 12, based on its inclusion of a PWM module 16 having six PWM channels, PWM1-PWM6. The six channels correspond directly to the six transistors Q1-Q6 in the drive circuit 14, where Q1 is the high-side drive for the Phase A motor winding, Q2 is the low-side drive for the Phase A motor winding, Q3 is the high-side drive for the Phase B motor winding, Q4 is the low-side drive for the Phase B motor winding, Q5 is the high-side drive for the Phase C motor winding, and Q6 is the low-side drive for the Phase C motor winding.
The PWM1 signal is denoted as the AH′ signal to denote a logic-level signal as output from the microcontroller 10, and the corresponding gate-drive signal output from the pre-driver circuit 18 is denoted as AH. Similarly, the PWM2 and PWM3 signals are denoted as BH′ and CH′, respectively, and the pre-driver circuit 18 outputs the corresponding BH and CH gate-drive signals. In this regard, the pre-driver circuit 18 will be understood as converting the logic level signals output from the PWM module 16 of the microcontroller 10 into more robust—higher current—gate drive signals suitable for switching the transistors Q1-Q2 on and off.
The pre-driver circuit 18 also provides negative-logic inputs for the three PWM signals corresponding to the low-side transistors, for complementary PWM-based chopping of the transistors Q1-Q6. That is, the PWM4 signal is denoted as AL′ to indicate that it corresponds to the low-side drive transistor Q2, and the pre-driver circuit 18 outputs AL* as the complementary drive-level version of that signal. Likewise, PWM5 is denoted as BL′ and the pre-driver circuit 18 provides the corresponding complementary signal BL* for driving the low-side transistor Q4, and PWM6 is denoted as CL′ and the pre-driver circuit 18 provides the corresponding complementary signal CL* for driving the low-side transistor Q6.
With this arrangement, the microcontroller 10 energizes the A-B phases of the BLDC motor 12, for example, by outputting the same PWM signal on PWM1 (AH) and PWM4 (AL), and outputting a LOW signal on PWM5 (BL). With these signals and inversion by the pre-driver circuit 18, Q1 is chopped by the PWM signal output on PWM1, Q2 is chopped by the complementary version of that PWM signal, and the gate of Q4 is driven high (i.e., Q4 is turned on). As is known, the complementary chopping of Q1 and Q2 provide for motor speed control with current recirculation via the drive transistor body diodes.
Broadly, the microcontroller 10 controls the set of six PWM signals as motor phase control signals used to apply the aforementioned mentioned rotating voltage vector to the BLDC motor 12. According to such operation, the PWM signals sequentially energize phase pairs in the BLDC motor 12 according to the desired rotational direction and speed. FIG. 2 illustrates the correspondence between the PWM signal states and the corresponding motor-phase control states. Synchronous control of the BLDC motor 12 depends on knowing rotor position and, in the illustrated example, back-EMF (electromotive force) sensing is used to detect rotor position. Back-EMF sensing can be understood as a “sensorless” technique. Other position-sensing techniques rely on encoders or Hall effect sensors. In FIG. 1, the microcontroller 10 uses a general purpose input/output (GPIO) module 20 to obtain rotor position information.
While the foregoing control arrangement is well understood, it is not without certain disadvantages. For example, while the cost of microcontrollers has declined dramatically over the last several decades, they often still represent a significant fraction of the overall expense in a given motor-control circuit. In part this expense arises from the tendency for multi-channel PWM modules to be included only in more full-featured microcontroller families, thus obligating the designer oftentimes to design around a microcontroller that includes more sophistication and more features than are needed in the contemplated motor-control circuit.